#ifndef CDRAWHAND_H
#define CDRAWHAND_H

#include "cshand.h"

class Shue;


//*****************************************************************************************************
//
// This class handles the logic of ranking Caribbean Draw hands, as well as deciding which cards should
// be discarded and replaced with new cards.  The basic ranking logic is the same as is used by
// caribbean stud, thus we derive from CStudHand.  The CDraw additions are the discard and draw logic.
//
// kharmon.  09-20-07.  #16842.
//*****************************************************************************************************

class CDrawHand : public CStudHand
{
	public:
		CDrawHand(CardMgr* Mgr);

		virtual bool8 qualifies();      // did the dealer meet the minimum requirements to play?

        void drawDealerCards(Shue *pShue, Hand *pNewCards); // Called to decide which cards to discard from the dealer hand.

	protected:

        void processHighCard(Shue *pShue, Hand *pNewCards);     // if the dealer is starting with a high card hand, call this.
        void processTwoPair(Shue *pShue, Hand *pNewCards);      // if the dealer is starting with two pair, call this.
        void processThreeOfAKind(Shue *pShue, Hand *pNewCards); // if the dealer is starting with three of a kind, call this.
        void processPair(Shue *pShue, Hand *pNewCards);         // if the dealer is starting with a pair, call this
	
};


#endif
